Міністерство освіти та науки України
НУ „Львівська політехніка”
Лекція №8
з курсу: «Застосування засобів об’єктно-орієнтованого програмування в лінгвістичних задачах»
Львів - 2010
Розділ 6. Файли
Програми, які до цього часу ми розглядали, виводили результат своєї
роботи на екран. Разом з тим, Delphi дозволяє зберігати результати роботи
програми на диску комп'ютера, у файлі, що дає можливість
використовувати ці дані для подальшої обробки.
6.1. Оголошення файлу
Файл — це структура даних що має ім’я, та містить послідовність
елементів даних одного типу, причому кількість елементів послідовності
практично не обмежена. У першому наближенні файл можна розглядати як
масив змінної довжини необмеженого розміру.
Як і будь-яка структура даних (змінна, масив) програми, файл повинен
бути оголошений в розділі опису змінних. При оголошенні файлу
указується тип елементів файлу.
У загальному вигляді оголошення файлу виглядає так:
Ім’я: file of Тип елементів;
Приклади:
res: file of char; // файл символів
koef: file of real; // файл дійсних чисел
f: file of integer; // файл цілих чисел
Файл, компонентами якого є дані символьного типу, називається
символьним, або текстовим. Опис текстового файлу в загальному вигляді
виглядає так:
Імя: textfile;
де:
.
ім'я — ім'я файлової змінної;
.
TextFile — позначення - типу, який вказує, що Ім'я — це файлова
змінна, яка представляє текстовий файл.
6.2. Призначення імені файлу
Оголошення файлової змінної задає тільки тип компонентів файлу. Для
того, щоб програма могла виводити дані у файл або прочитувати дані з
файлу, необхідно вказати конкретний файл, тобто пов'язати файлову
змінну з конкретним файлом (задати ім'я файлу).
Ім'я файлу задається викликом процедури AssignFile, що пов'язує
файлову змінну з конкретним файлом.
Опис процедури AssignFile виглядає наступним чином:
AssignFile(var f, Ім’я файла: string)
Ім'я файлу задається згідно прийнятим в Windows правилам. Воно
може бути повним, тобто складатися не тільки безпосередньо з імені
файлу, але і включати шлях до файлу (ім'я диска, каталогів і підкаталогів).
Нижче приведені приклади виклику процедури AssignFiie:
AssignFile(f, 'a:\result.txt');
AssignFile(f, '\students\ivanov\koreni.txt');
fname:=('otchet.txt'); AssignFile(f,fname);
6.3. Вивід у файл
Безпосередньо вивід в текстовий файл здійснюється за допомогою
інструкції write або writeln. У загальному вигляді ці інструкції записуються
таким чином:
write (Файлова змінна, Список виводу) ;
writeln (Файлова змінна, Список виводу);
де:
.
Файлова змінна — це змінна, що ідентифікує файл, в який
виконується вивід;
.
Список виводу – це розділені комами імена змінних, значення яких
треба вивести у файл. Окрім імен змінних в список виводу можна
включати стрічкові константи.
Наприклад, якщо змінна f є змінною типу TextFiie, то інструкція виводу
значень змінних x1 і х2 у файл може бути такій:
write(f, 'Корені рівняння', x1, х2);
Відмінність між інструкціями write і writeln полягає в тому, що
інструкція writeln після виведення всіх значень, вказаних в списку виводу,
записує у файл символ "новий рядок".
6.4. Відкриття файлу для виводу
Перед виводом у файл його необхідно відкрити. Якщо програма, що
формує вихідний файл, вже використовувалася, то можливо, що файл з
результатами роботи програми вже є на диску. Тому програміст повинен
вирішити, як поступити із старим файлом: замінити старі дані новими або
нові дані додати до старих. Спосіб використання старого варіанту
визначається під час відкриття файлу.
Можливі наступні режими відкриття файлу для запису в нього даних:
.
перезапис (запис нового файлу поверх того, що існує або створення
нового файлу);
.
додавання в існуючий файл.
Для того, щоб відкрити файл в режимі створення нового файлу або
заміни що існує, необхідно викликати процедуру Rewrite(f), де f —
файлова змінна типу TextFile.
Для того, щоб відкрити файл в режимі додавання до вже існуючих
даних, що знаходять...